在上一節中,我們成功地使用 Docker Compose 架設了 PostgreSQL 和 pgAdmin 容器。現在,讓我們進一步探討如何將這個容器化的 PostgreSQL 資料庫與 Spring Boot 項目整合,以便在開發過程中輕鬆使用這個資料庫。
首先,我們需要確保 Spring Boot 項目能夠連接到 Docker Compose 啟動的 PostgreSQL 資料庫。為此,我們需要配置 Spring Boot 項目的數據源,以便它能夠訪問 PostgreSQL 容器。
打開你的 Spring Boot 項目,通常資料庫的配置位於 application.properties 或 application.yml 文件中。你需要確保以下屬性正確配置:
spring.datasource.url=jdbc:postgresql://localhost:5436/ironman2023
spring.datasource.username=ianliu
spring.datasource.password=ianliu
在上述屬性中,spring.datasource.url 指定了資料庫的連接 URL,其中 localhost 是 Docker 主機,5432 是 PostgreSQL 服務的埠號,mydb、myuser 和 mypassword 分別是資料庫的名稱、使用者名稱和密碼,這些屬性需要與 Docker Compose 設定文件中的設置相匹配。
如果你的項目中沒有添加 PostgreSQL 驅動的依賴,你需要在專案的構建文件中添加它。如果你使用 Maven,可以在pom.xml中添加以下依賴:
<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
</dependency>
現在,你可以啟動 Spring Boot 專案,它將連接到 Docker Compose 啟動的 PostgreSQL 資料庫。你可以編寫程式碼並使用這個容器化的資料庫進行開發、測試和調試。
@SpringBootTest
class Ironman2023ApplicationTests {
    // 匯入資料庫連接參數
    @Value("${spring.datasource.url}")
    private String jdbcUrl;
    @Value("${spring.datasource.username}")
    private String db_username;
    @Value("${spring.datasource.password}")
    private String db_password;
    @Test
    void databaseConnectionTest() {
        // 嘗試連接資料庫
        try (Connection connection = DriverManager.getConnection(jdbcUrl, db_username, db_password)) {
            // 如果成功連接,輸出成功消息
            System.out.println("資料庫連接成功!");
        } catch (SQLException e) {
            // 如果成功失敗,輸出錯誤消息和異常信息
            System.err.println("資料庫連接失敗!");
            e.printStackTrace();
        }
    }
}
 
回顧如何使用 Docker Compose 在團隊開發環境中建立和管理資料庫的好處。我們已經學到了以下關鍵內容:
強調了 Docker Compose 對於協作和開發的重要性,並提供了一個方便的方法,可以在團隊開發環境中建立和管理資料庫。這有助於確保整個團隊能夠在一致的環境中開發和測試應用程式,提高了協作效率和開發的可重複性。希望這個指南對於使用 Docker Compose 來管理團隊開發環境的流程有所幫助。